package cn.gcyl.module.biz.dal.mysql.conferenceregistrationinformation;

import java.util.*;
import java.util.stream.Collectors;

import cn.gcyl.framework.common.pojo.PageResult;
import cn.gcyl.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.gcyl.framework.mybatis.core.mapper.BaseMapperX;
import cn.gcyl.module.biz.dal.dataobject.conferenceregistrationinformation.ConferenceRegistrationInformationDO;
import cn.gcyl.module.biz.dal.dataobject.conferenceregistrationinformation.ConferenceUserRegistrationInformationPO;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import cn.gcyl.module.biz.controller.admin.conferenceregistrationinformation.vo.*;
import org.apache.ibatis.annotations.Param;

/**
 * 会议报名信息 Mapper
 *
 * @author 芋道源码
 */
@Mapper
public interface ConferenceRegistrationInformationMapper extends BaseMapperX<ConferenceRegistrationInformationDO> {

    default PageResult<ConferenceRegistrationInformationDO> selectPage(ConferenceRegistrationInformationPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<ConferenceRegistrationInformationDO>()
                .eqIfPresent(ConferenceRegistrationInformationDO::getMeetingId, reqVO.getMeetingId())
                .eqIfPresent(ConferenceRegistrationInformationDO::getUserId, reqVO.getUserId())
                .eqIfPresent(ConferenceRegistrationInformationDO::getIsFree, reqVO.getIsFree())
                .betweenIfPresent(ConferenceRegistrationInformationDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(ConferenceRegistrationInformationDO::getId));
    }
     //PageResult<ConferenceRegistrationInformationDO> getUserRegistrationInformationPage(ConferenceRegistrationInformationPageReqVO reqVO) ;


    // 在 ConferenceRegistrationInformationMapper.java 接口中
    IPage<ConferenceUserRegistrationInformationPO> getMeetingListPage(
            @Param("page") IPage<?> page,
            @Param("reqVO") ConferenceMeetingInformationPageReqVO reqVO);
     ConferenceUserRegistrationInformationPO getMeetingInfo(Long id);
}